// 云函数入口文件
const cloud = require('wx-server-sdk')

cloud.init({
  env: 'cloud1-2ga6780q302b7f4a'
}) // 使用当前云环境
const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  const { OPENID } = cloud.getWXContext()
  console.log('开始执行adminGetEquipments云函数')
  console.log('传入参数:', event)
  
  try {
    // 验证管理员身份
    console.log('开始验证管理员身份')
    const result = await cloud.callFunction({
      name: 'checkAdminAuth',
      data: {
        adminId: event.adminId || '',
        token: event.token || ''
      }
    })
    
    const { code, data } = result.result
    console.log('管理员身份验证结果:', code, data)
    
    if (code !== 0 || !data) {
      return {
        code: 401,
        data: null,
        message: '未授权访问'
      }
    }
    
    // 确保集合存在
    console.log('开始检查equipment集合是否存在')
    try {
      await db.createCollection('equipment').catch(err => {
        // 如果集合已存在，会抛出错误，我们可以忽略这个错误
        console.log('创建集合结果 (可能已存在):', err)
      })
      console.log('集合检查/创建完成')
    } catch (error) {
      console.error('创建集合错误 (忽略):', error)
    }
    
    // 使用更安全的方式获取数据
    console.log('开始获取equipment数据')
    let equipments = []
    
    try {
      const { data } = await db.collection('equipment')
        .orderBy('createTime', 'desc')
        .get()
      
      equipments = data
      console.log('成功获取到装备数据，数量:', equipments.length)
    } catch (err) {
      console.error('获取装备数据出错:', err)
      
      // 尝试使用不带排序的简单查询
      try {
        console.log('尝试不带排序的简单查询')
        const { data } = await db.collection('equipment').get()
        equipments = data
        console.log('简单查询成功，数量:', equipments.length)
      } catch (simpleErr) {
        console.error('简单查询也失败:', simpleErr)
        // 如果还是失败，尝试直接返回空数组
        console.log('返回空数组')
        return {
          code: 0,
          data: [],
          message: '获取装备列表异常，可能是集合刚刚创建或出现其他问题，请稍后再试或添加装备'
        }
      }
    }
    
    console.log('云函数执行成功，返回装备数据')
    return {
      code: 0,
      data: equipments,
      message: '获取装备列表成功'
    }
  } catch (err) {
    console.error('云函数执行出错:', err)
    return {
      code: 500,
      data: [],
      message: '获取装备列表失败: ' + err.message
    }
  }
} 